"Memory Monitor" ---------------- By Michael Garber September 2011 (Program Description by Adam Trionfo and Michael Garber) This useful utility program lets you observe the various areas of ROM and RAM using a small font set. This allows MUCH more memory to be observed at one time. This program is extremely useful for testing the Flash Cart's various banks, but it can also be used to explore RAM from $4000-$4FFF. Notes on Use: 1) Joy left/right/up/down - Change address range to view. 2) Joy Trig + Knob - Change active bank. 3) $3FC0-$3FFF not monitored to avoid unwanted bankswitching. "Memory Monitor" (With 63 Pre-Loaded Banks) ------------------------------------------- A special, separate version, of "Memory Monitor" has the first 63 banks pre- loaded with useful information. Banks 0-62 have been loaded with the bank number for the whole 4K bank. For instance: 1) Bank 0 ($00000-$00FFF) is loaded with $00 2) Bank 62 ($3E000-3EFFF) is loaded with $3E The only exception to each byte holding the bank number is that the beginning of each bank holds the bank number in ASCII like this: Bank X has "BANK 0XX" followed by $00 (end of string character) To make use of this have $3000 as the top of RAM on the screen. As you turn the knob and squeeze the trigger you get real-time results: 1) Banks 0-31 displays Bank 32. This is because of the error with the PCB making Banks 0-31 inaccessible. When the error is corrected, then these banks should display correctly. 2) Banks 32-63 display Banks 31 - 63. The second-to-last bank, Bank 62, is filled with $3E. The true last bank, Bank $3F, displays the program at as also seen at $2000 (this is normal). Note that there is a separate version for MESS is also available for download. Questions and Answers --------------------- 1) What are the numbers on the upper-right hand side of the screen? The first number is where the program code and data ends from the "shared" bank of $2000-$2FFF. This is what I call the main engine space. $23A5 means that I've used $3A5 of the $1000 available for the main engine. The 2nd number is pulled from the last 2 bytes of the 2nd module space. It's the space used for the module you have loaded. So if it says $3E3E then it's pretty full as we only have til $3f80 which is the last useable part of the module (any attempt to access the $80 after that will cause bankswitching) I chose the module location of this "length" id to be $3F7E+$37FF, right at the end. I'm going to make this as well as other things about programming my modules standard so they can be more easily plugged in to use and also easier to debug. So they are basically diagnostic numbers to let me know how much room stuff is taking up as I add it (number and text font, code, etc). I'm on the verge of making the engine available with bankswitching features built in along with source code. This will have an updated version of the monitor and have an example program of how to use everything. 2) What is the purpose of the colors? The colors were just so I can make sure the code is running as well as the raster code. It's just a way to be assured that the code isn't locked up somewhere. Also I messed around until I got a green, blue, and red that all looked right on a real screen. It's also a useful thing to notice where your overscans are along the rightside of the screen. So you can see how much "blank" space is around the outsides of the video image.